/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package Extras;

import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import javax.swing.ImageIcon;
import javax.swing.JDialog;
import javax.swing.JOptionPane;
import javax.swing.WindowConstants;

/**
 *
 * @author Francisco
 */
public class Mensajes {

    /**
     * Metodo dedicado a mostrar informacion al usuario
     *
     * @param info
     */
    private static Image iconoSuperior = Toolkit.getDefaultToolkit().getImage(ClassLoader.getSystemResource("Imagenes/icono.png"));

    public static void mostrarInformacion(String info) {
        JOptionPane optionPane = new JOptionPane(info, JOptionPane.INFORMATION_MESSAGE, JOptionPane.DEFAULT_OPTION, null, null, null);

        JDialog dialogo = optionPane.createDialog("Atención");
        dialogo.setIconImage(iconoSuperior);
        GestorEstilos.pintarJOP(dialogo);
        dialogo.setAlwaysOnTop(true);
        dialogo.setModal(true);
        dialogo.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
        dialogo.setVisible(true);

    }

    /**
     * Metodo dedicado a mostrar por pantalla un error mediante un mensaje
     *
     * @param error Error a mostrar
     */
    public static void mostrarError(String error) {
        JOptionPane optionPane = new JOptionPane(error, JOptionPane.ERROR_MESSAGE, JOptionPane.DEFAULT_OPTION, null, null, null);
        JDialog dialogo = optionPane.createDialog("Atención");
        dialogo.setIconImage(iconoSuperior);
        GestorEstilos.pintarJOP(dialogo);
        dialogo.setAlwaysOnTop(true);
        dialogo.setModal(true);
        dialogo.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
        dialogo.setVisible(true);
    }

    /**
     * Metodo dedicado a mostrar informacion al usuario
     *
     * @param frame a partir de este componente, se intentará determinar cual es
     * la ventana que debe hacer de padre del JOptionPane
     * @param info
     */
    public static boolean mostrar_SI_NO(String info) {
        JOptionPane optionPane = new JOptionPane(info, JOptionPane.INFORMATION_MESSAGE, JOptionPane.YES_NO_OPTION, null, null, null);
        JDialog dialogo = optionPane.createDialog("Atención");
        dialogo.setIconImage(iconoSuperior);
        GestorEstilos.pintarJOP(dialogo);
        dialogo.setAlwaysOnTop(true);
        dialogo.setModal(true);
        dialogo.setDefaultCloseOperation(JOptionPane.NO_OPTION);
        dialogo.setVisible(true);
        if (optionPane.getValue() == null) {
            return false;
        }
        if ((int) optionPane.getValue() == JOptionPane.YES_OPTION) {
            return true;
        } else {
            return false;
        }
//        if (JOptionPane.showOptionDialog(
//                null,
//                info,
//                "Atención",
//                JOptionPane.YES_NO_OPTION,
//                JOptionPane.INFORMATION_MESSAGE,
//                null,
//                null,
//                "Aceptar") == JOptionPane.YES_OPTION) {
//            return true;
//        } else {
//            return false;
//        }
    }

    public static int mostrarCustom(String titulo, String[] opciones) {
        JOptionPane optionPane = new JOptionPane(titulo, JOptionPane.WARNING_MESSAGE, 0, null, opciones, opciones[0]);
        JDialog dialogo = optionPane.createDialog("Atención");
        dialogo.setDefaultCloseOperation(
                JDialog.DO_NOTHING_ON_CLOSE);
        dialogo.setVisible(true);
        switch ((String) optionPane.getValue()) {
            case "Vender Casas":
                return 0;
            case "Hipotecar Propiedades":
                return 1;
            case "No Adquirir":
                return 2;
        }
        return -1;
    }
}
